#ifndef THREAD_TESTS_HPP_
# define THREADTESTS_HPP_

# include "UnitTest/Tests.hpp"

namespace wrappers {
namespace pthread {

class Thread_tests {
public:
  Thread_tests();
  virtual ~Thread_tests();

  static UTESTS_FUNCTION_PROTOTYPE(Creation);
  static UTESTS_FUNCTION_PROTOTYPE(JoinDetach);
  static UTESTS_FUNCTION_PROTOTYPE(Cancelling);

  static void *ThreadActionMutexLock(void *args);
  static void *ThreadActionTimed(void *args);

private:
  unit_test::TestRunner mTestRunner;
};

} /* namespace pthread */
} /* namespace wrappers */
#endif /* !THREAD_TESTS_HPP_ */
